避免每次重启服务器,用户都要重新登录。
自定义 SessionDAO
| 1 | public class MySessionDAO extends EnterpriseCacheSessionDAO { | 
创建 Session 实体类
| 1 | public class MySession { | 
序列化工具类
| 1 | public class SerializableUtils { | 
添加依赖
| 1 | <dependency> | 
添加配置
| 1 | spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shiro-login?useUnicode=true&characterEncoding=utf-8 | 
Session Mapper
| 1 | 
 | 
Shiro 添加配置
在 Shiro 配置类中添加:
| 1 | 
 | 
创建数据表
| 1 | DROP TABLE IF EXISTS `session`; | 
测试
给 Session 设置属性,然后重启应用,测试属性是否存在。
| 1 | ("/setA") | 
注意:Shiro 不会自动为浏览器创建 Session。
只有调用Session session = subject.getSession();之后才会创建 Session。
如果 Session 已经存在,那么调用这句就不会再次创建,而是直接获取。
总结
核心就是自定义 SessionDAO,然后配置。